Developers should note that any client written using PCCard 3.0 will be using the PCCard 3.0 stack and should limit it's usage to avoid stack overflow.
Interrupts
Functional interrupts are enabled and disabled using the default enable and disable interrupt routines. If a driver installs it's own enable and disable interrupt routines, the default routines must be called to inform PC Card 3.0 family of the state of the functional interrupt. PC Card 3.0 handles all routing of the PCI interrupts to the device drivers.
Funtional interrupts must be cleared by the driver when it's ISR is envoked. If the driver fails to do this they will never receive another interrupt. This is due to the nature of interrupt processing of the Mac OS and the integration of PC Card adapter hardware.
Card Enabler Loading
There are two different types of enablers:
1) The default enabler supplied by Apple and SystemSoft
2) A custom enabler for a specific card, supplied by a card vendor
The PC Card 3.0 family searches all available enablers in a specific
order until it finds an enabler can handle the inserted card. An
enabler indicates that it can handle a specific card in it's
ValidateHardwareProc. An enabler should return noErr if it can handle
a card, otherwise it should return kUnsupportedCardErr.
1) A custom enabler is searched for on the basis of the name property
of the card node in the Name Registry. The card node name (for example
"pccard57,1010" ) must be found in it's device descriptor.
2) The default enabler is searched for on the basis of the compatible
property of the card node in the Name Registry. The default enabler
will always chose to handle any card.
Custom Icons
The folder AnotherCustomEnabler contains an example of a custom enabler
which displays a custom icon.
Comments and bug reports
Please send them via email to Carl Fallis at cfallis@systemsoft.com